/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dominio;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Agustin
 */
public class Empresa {

    private int rut;
    private String razon_social;
    private String nombre;
    private String direccion;
    private String barrio;
    private String telefono;

    public String getBarrio() {
        return barrio;
    }

    public void setBarrio(String barrio) {
        this.barrio = barrio;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getRazon_social() {
        return razon_social;
    }

    public void setRazon_social(String razon_social) {
        this.razon_social = razon_social;
    }

    public int getRut() {
        return rut;
    }

    public void setRut(int rut) {
        this.rut = rut;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public int crearEmpresa(int rut, String razon_social, String nombre, String direccion, String barrio, String telefono) {
        int resultado = 0;
        try {
            resultado = persistencia.PersistenciaEmpresa.getInstance().insert(rut, razon_social, nombre, direccion, barrio, telefono);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return resultado;
    }

    public int agregarEmpleado(int rut, String nombre_usuario) {
        int resultado = 0;
        try {
            resultado = persistencia.PersistenciaEmpresa.getInstance().insertEmpleados(rut, nombre_usuario);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return resultado;
    }

    public void modificarEmpresa(int rut, String razon_social, String nombre, String direccion, String barrio, String telefono) {
        try {
            persistencia.PersistenciaEmpresa.getInstance().update(rut, razon_social, nombre, direccion, barrio, telefono);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
    }

    public void bajaEmpresa(int rut) {
        try {
            persistencia.PersistenciaEmpresa.getInstance().baja(rut);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
    }

    public List<Empresa> traerEmpresasActivas(int rut) {
        List<Empresa> empresas = new ArrayList<Empresa>();
        try {
            empresas = persistencia.PersistenciaEmpresa.getInstance().select(rut);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return empresas;
    }

    public List<Empresa> traerEmpresasInactivas(int rut) {
        List<Empresa> empresas = new ArrayList<Empresa>();
        try {
            empresas = persistencia.PersistenciaEmpresa.getInstance().selectInactivos(rut);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return empresas;
    }

    public List<Empresa> traerEmpresasEmpleado(String nombre_usuario) {
        List<Empresa> empresas = new ArrayList<Empresa>();
        try {
            empresas = persistencia.PersistenciaEmpresa.getInstance().selectEmpresasPorEmpleado(nombre_usuario);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return empresas;
    }

    public int calificarEmpleados(int rut, String nombre_usuario, int valor, String comentario) {
        int resultado = 0;
        try {
            resultado = persistencia.PersistenciaEmpresa.getInstance().calificarEmpleados(rut, nombre_usuario, valor, comentario);
        } catch (Exception e) {
            throw new UnsupportedOperationException(e.toString());
        }
        return resultado;
    }
    @Override
    public String toString() {
        return ( this.getNombre());
    }
}
